home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / utilitys / 57 / pick_rez.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-04-20  |  4.1 KB  |  116 lines

  1. /* PICK_REZ -- a program to select medium or high resolution upon boot      */
  2. /* by Tim Ekdom (72575,1473)                                                */
  3. /* 4/17/87 #3                                                               */
  4.  
  5. /* misc taken from OSBIND.H  */
  6.  
  7. extern  char    bios();                    /* I changed the return values   */
  8. extern  int     gemdos();                  /* for my own nefarious purposes */
  9.  
  10. char    get_answer();                        /* return value declaration    */
  11.  
  12. #define Bconin(a)       bios(2,a)                         /* character in   */
  13. #define Bconout(a,b)    bios(3,a,b)                       /* character out  */
  14.  
  15. #define Cconws(a)       gemdos(0x9, a)                    /* write a string */
  16. #define Fopen(a,b)      gemdos(0x3d,a,b)                  /* open a file    */
  17. #define Fclose(a)       gemdos(0x3e,a)                    /* close a file   */
  18. #define Frename(a,b,c)  gemdos(0x56,a,b,c)                /* rename a file  */
  19.  
  20. /* and a couple of mine */
  21.  
  22. #define FALSE 0
  23. #define TRUE  1
  24. #define READ  0
  25.  
  26. /* global variables */
  27.  
  28. short   med_flag, low_flag;
  29. int     status;
  30. char    answer;
  31. char    desk_low[] = "DESKTOP.LOW";
  32. char    desk_med[] = "DESKTOP.MED";
  33. char    desk_inf[] = "DESKTOP.INF";
  34.  
  35. /* main program */
  36.  
  37. main()  {
  38.         Bconout (2, 27);                                    /* clear screen */
  39.         Bconout (2, 69);
  40.         Cconws ("\n\r");
  41.  
  42.         low_flag = med_flag = FALSE;                          /* init flags */
  43.  
  44.         status = Fopen (desk_low, READ);            /* is DESKTOP.LOW here? */
  45.  
  46.         if (status > 0)                                      /* yes, it is, */
  47.                 med_flag = TRUE;     /* then DESKTOP.INF must be medium rez */
  48.         Fclose (desk_low);
  49.  
  50.         if (! med_flag)  {                     /* if DESKTOP.LOW not found, */
  51.                 status = Fopen (desk_med, READ);    /* is DESKTOP.MED here? */
  52.                 if (status > 0)                              /* yes, it is, */
  53.                         low_flag = TRUE;     /* then DESKTOP.INF is low rez */
  54.                 Fclose (desk_med);
  55.                 }
  56.  
  57.         if (med_flag)  {        /* if current DESKTOP.INF is for medium rez */
  58.                 Cconws (" Currently Medium Resolution.\n\r");
  59.                 Cconws (" Switch to Low? ");              /* prompt for y/n */
  60.                 answer = get_answer();                        /* get answer */
  61.                 if (answer == 'Y' || answer == 'y')  {           /* if yes, */
  62.                         to_low();                    /* set .INF to low rez */
  63.                         Cconws (" OK! ");
  64.                         }
  65.                 }
  66.  
  67.         if (low_flag)  {                     /* if current .INF for low rez */
  68.                 Cconws (" Currently Low Resolution.\n\r");
  69.                 Cconws (" Switch to Medium? ");
  70.                 answer = get_answer();                      /* get response */
  71.                 if (answer == 'Y' || answer == 'y')  {           /* if yes, */
  72.                         to_medium();                 /* set .INF to med rez */
  73.                         Cconws (" OK! ");
  74.                         }
  75.                 }
  76. }
  77.  
  78.  
  79. /* get answer, return char Y,y,N,n */
  80.  
  81. char get_answer()  {
  82.  
  83.         short done;
  84.         char  key;
  85.         done = FALSE;
  86.         while (! done)  {
  87.                 key = Bconin (2);                         /* get a keypress */
  88.                 if (key == 'Y' || key == 'y' || key == 'N' || key == 'n')
  89.                         done = TRUE;           /* if it's Y,y,N,n then done */
  90.                 }
  91.         Bconout (2, key);
  92.         return (key);
  93. }
  94.  
  95. /* rename DESKTOP.MED to DESKTOP.INF */
  96.  
  97. to_medium()  {
  98.  
  99.         int dummy;
  100.  
  101.         dummy = Frename (0, desk_inf, desk_low);            /* .INF to .LOW */
  102.         dummy = Frename (0, desk_med, desk_inf);            /* .MED to .INF */
  103. }
  104.  
  105. /* rename DESKTOP.LOW to DESKTOP.INF */
  106.  
  107. to_low()  {
  108.  
  109.         int dummy;
  110.  
  111.         dummy = Frename (0, desk_inf, desk_med);            /* .INF to .MED */
  112.         dummy = Frename (0, desk_low, desk_inf);            /* .LOW to .INF */
  113. }
  114.  
  115.  
  116.